// encoding utf-8
#ifndef __QyGLSettings__
#define __QyGLSettings__

#include <QtGui/QDialog>
#include <QtOpenGL>

class QTreeWidget;
class QyGLOption;

namespace QyGL {

/*! \brief Настройки отображения
	\ingroup QyOpenGL
*/
class ViewSettings {
public:
	ViewSettings();

	QSize resolution; //!< Разрешение
	QGLFormat format; //!< Формат (см документацию Qt)

	struct {
		qreal fov, //!< Угол проекции
			aspect, //!< Отношение сторон
			zNear, //!< Далний план
			zFar; //!< Передний план
		bool adjustAspect; //!< Автоматически расчитывать соотношение сторон
	} projection; //!< Параметры проекции

	quint32 updateRate; //!< Частота обновления (сколько мс должно пройти перед следующим обновлением сцены)
	quint32 textureFilter; //!< Фильтрация текстур

};

/*! \brief Диалог настройки отображения
	\ingroup QyOpenGL
*/
class SettingsDialog : public QDialog {
public:
	explicit SettingsDialog( QWidget * parent = 0 );
	virtual ~SettingsDialog();

	ViewSettings viewSettings() const { return p_viewSettings; } //!< Получить параметры отображения

	void setViewSettings( const ViewSettings & viewSettings ); //!< Установить настройки

private:
	ViewSettings p_viewSettings;
	QTreeWidget * view;
	// QyGLOption
		// * resolutionOption,
		// * projectionFovOption,
		// * projectionAspectOption,
		// * projectionZNearOption,
		// * projectionZFarOption,
		// * updateRateOption,
		// * textureFilterOption,
	// ;

};

};

#endif//__QyGLSettings__
